// 接收express 模块
const express = require('express')

// 创建路由对象
const router = express.Router()

// 导入用户路由 处理函数对应的模块
const room_handler = require('../router_handler/room')

// 导入 数据库操作模块
const db = require('../db/index')


// 洗牌
const shuffle = (cards) => {
  var cardsTmp = []
  var len = cards.length
  for (var i=0; i<len; i++) {
    var index = Math.floor(Math.random()*(len-i))
    cardsTmp.push(cards[index])
    cards.splice(index, 1)
  }
  cards = cardsTmp
  return cards
}


// 设置 用户列表
// router.get('/room/setRoom', (req, res) => {
//   // 清空
//   const sqlStr = 'delete from room'
//   db.query(sqlStr, (err, results) => {
//     // 判断 sql语句是否执行成功
//     // if (err) return res.send({status: 1, message: err.message})
//     if (err) return res.cc(err.message)

//   })
   
//   shuffle(roleList).forEach(item => {
//     // 插入行 用户
//     const sql = 'insert into room set ?'
//     db.query(sql, {id: item.id, name: item.name, type: item.type, personnel: item.personnel}, (err, results) => {
//       // 判断 sql语句是否执行成功
//       // if (err) return res.send({status: 1, message: err.message})
//       if (err) return res.cc(err.message)
      
//       // if (results.affectedRows !== 1) return res.send({status: 1, message: '注册用户失败，请稍后再试！'})
//       if (results.affectedRows !== 1) return res.cc('插入失败，请稍后再试！')

//       res.cc('插入成功！', 200)
//     })
//   })
  
// })

// 加入房间后获取 用户列表
router.get('/room/list', (req, res) => {
  console.log('获取用户列表', req.query)
  // 查询 room 表中所有数据
  const sqlStr = `select * from room where roomNumber=${req.query.roomNumber}`
  db.query(sqlStr, (err, results) => {
    
    // 判断 sql语句是否执行成功
    // if (err) return res.send({status: 1, message: err.message})
    if (err) return res.cc(err.message)
    
    //console.log(results)
    //console.log(results)
    res.send({
      status: 200,
      data: results,
      message: '请求成功'
    })
    
  })
  
})


// nmp i @escook/express-joi 中间件，来实现自动对表单数据进行验证的功能
const expressJoi = require('@escook/express-joi')
const { reg_addRoom_schema, reg_joinRoom_schema, reg_isStart_schema } = require('../schema/room')


// 创建房间
router.post('/room/addRoom', expressJoi(reg_addRoom_schema), room_handler.addRoom)

// 加入房间
router.post('/room/joinRoom', expressJoi(reg_joinRoom_schema), room_handler.joinRoom)

// 获取是否开始游戏
router.get('/room/isStart', expressJoi(reg_isStart_schema), (req, res) => {
  // 查询 room 表中所有数据 
  console.log('获取是否开始游戏', req.query)
  const sqlStr = `select * from roomList WHERE roomId='${req.query.roomId}'`
  db.query(sqlStr, (err, results) => {
    // 判断 sql语句是否执行成功
    // if (err) return res.send({status: 1, message: err.message})
    if (err) return res.cc(err.message)
    
    //console.log(results)
    //console.log(results)
    res.send({
      status: 200,
      data: results[0],
      message: '请求成功'
    })
    
  })
  
})

// 开始游戏
router.post('/room/setStart', (req, res) => {
  // 查询 room 表中所有数据
  console.log(req.body)
  const sqlStr = `UPDATE roomList SET isStart=1 WHERE roomId='${req.body.roomId}'`
  db.query(sqlStr, (err, results) => {
    
    // 判断 sql语句是否执行成功
    // if (err) return res.send({status: 1, message: err.message})
    if (err) return res.cc(err.message)
    
    //console.log(results)
    //console.log(results)
    res.send({
      status: 200,
      message: '请求成功'
    })
    
  })
  
})


module.exports = router

